// uploadMiddleware.js
import multer from 'multer';

// Set up storage engine
// 定义 multer 的磁盘存储配置
const storage = multer.diskStorage({
  /**
   * 配置文件的存储目的地
   * @param {Object} req - HTTP 请求对象
   * @param {Object} file - 上传的文件对象
   * @param {Function} cb - 回调函数，用于指定存储路径
   */
  destination: function (req, file, cb) {
    // 指定文件存储在 'uploads/' 目录下
    cb(null, 'uploads/');
  },

  /**
   * 配置文件的命名方式
   * @param {Object} req - HTTP 请求对象
   * @param {Object} file - 上传的文件对象
   * @param {Function} cb - 回调函数，用于指定文件名
   */
  filename: function (req, file, cb) {
    // 生成一个唯一的后缀，用于区分不同的文件
    const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9);
    // 使用唯一后缀和原始文件名来命名文件，确保文件名不重复
    cb(null, uniqueSuffix + '-' + file.originalname);
  },
});


const upload = multer({ storage: storage });

export default upload;
